package com.ray.mapper;

import java.util.List;
import java.util.Map;

import com.ray.bean.FeedOrderDetailBean;
import com.ray.bean.MyApplyBean;
import com.ray.bean.MyAuditBean;
import com.ray.bean.OrderInfoDetailBean;
import com.ray.pojo.OrderInfoDetailPojo;

/**
 * 投料单dao
* <p>Title: FeedOrderMapper</p>  
* <p>Description: </p>  
* @author 李斌  
* @date 2018年10月11日
 */
public interface FeedOrderMapper {
	
	
	/**
	 * 获取订单明细通过订单信息
	* @date 2018年10月11日 下午1:50:57 
	* @author 李斌
	* @return List<OrderInfoDetailBean> 
	* @throws
	 */
	List<OrderInfoDetailPojo> getOrderInfoDetailByDetail(Map<String, Object> map);
	int getOrderInfoDetailByDetailCount(Map<String, Object> map);
	
	/**
	 * 新增订单明细信息
	* @date 2018年10月12日 下午2:11:17 
	* @author 李斌
	* @return int 
	* @throws
	 */
	int addOrderInfoDetail(OrderInfoDetailBean orderInfoDetail);
	
	/**
	 * 订单明细查重
	* @date 2018年10月12日 下午2:47:38 
	* @author 李斌
	* @return List<OrderInfoDetailBean> 
	* @throws
	 */
	List<OrderInfoDetailBean> getOrderInfoDetailCheckDuplicate(OrderInfoDetailBean orderInfoDetailBean);
	
	/**
	 * 插入订单申请记录
	* @date 2018年10月15日 下午4:43:28 
	* @author 李斌
	* @return int 
	* @throws
	 */
	int addMyApply(MyApplyBean myApplyBean);
	
	/**
	 * 查找该订单是否有修改申请中
	* @date 2018年10月15日 下午4:58:24 
	* @author 李斌
	* @return MyApplyBean 
	* @throws
	 */
	MyApplyBean getMyApply(OrderInfoDetailBean orderInfoDetailBean);
	
	/**
	 * 插入订单申请修改后的记录
	* @date 2018年10月16日 上午8:34:16 
	* @author 李斌
	* @return int 
	* @throws
	 */
	int addOrderInfoDetailApply(OrderInfoDetailBean orderInfoDetailApply);
	
	/**
	 * 通过订单信息id获取id
	* @date 2018年10月16日 上午9:53:07 
	* @author 李斌
	* @return OrderInfoDetailBean 
	* @throws
	 */
	OrderInfoDetailBean getOrderInfoDetailById(Map<String, Object> map);
	
	/**
	 * 通过订单明细信息获取投料单信息
	* @date 2018年10月16日 下午2:47:37 
	* @author 李斌
	* @return void 
	* @throws
	 */
	List<FeedOrderDetailBean> getFeedOrderDetailByOrderInfoDetail(Map<String,Object> map);
	
	/**
	 * 插入订单申请通过后的原订单申请信息
	* @date 2018年10月16日 下午4:07:37 
	* @author 李斌
	* @return void 
	* @throws
	 */
	int addMyAudit(MyAuditBean myAuditBean);
	
	/**
	 * 更新订单物料信息
	* @date 2018年10月17日 上午11:11:29 
	* @author 李斌
	* @return void 
	* @throws
	 */
	int updateOrderInfoDetail(OrderInfoDetailBean updateOrderInfoDetail);
	
	/**
	 * 删除订单物料信息(抹平物料信息,只保留仓位,行号,物料类型,订单编号)
	* @date 2018年10月17日 上午11:33:17 
	* @author 李斌
	* @return int 
	* @throws
	 */
	int deleteOrderInfoDetail(OrderInfoDetailBean oldOrderInfoDetail);
	
	/**
	 * 备份被删除的订单明细信息
	* @date 2018年10月17日 下午1:22:09 
	* @author 李斌
	* @return int 
	* @throws
	 */
	int addOrderInfoDetailWaste(OrderInfoDetailBean oldOrderInfoDetail);
	
	/**
	 * 入订单申请通过后的原订单信息
	* @date 2018年10月17日 下午4:37:25 
	* @author 李斌
	* @return int 
	* @throws
	 */
	int addOrderInfoDetailAudit(OrderInfoDetailBean orderInfoDetailAudit);
	
	/**
	 * 根据orderInfoDetailBean获取orderInfoDetailApply
	* @date 2018年10月18日 上午8:33:36 
	* @author 李斌
	* @return OrderInfoDetailBean 
	* @throws
	 */
	OrderInfoDetailBean getOrderInfoDetailApplyByOrderInfoDetailBean(OrderInfoDetailBean orderInfoDetailBean);
	
	/**
	 * 修改myApplyBean信息
	* @date 2018年10月18日 上午9:02:26 
	* @author 李斌
	* @return void 
	* @throws
	 */
	int updateMyApply(MyApplyBean oldMyApply);
	
	/**
	 * 删除订单信息备份记录
	* @date 2018年10月18日 上午9:34:55 
	* @author 李斌
	* @return int 
	* @throws
	 */
	int deleteOrderInfoDetailWaste(OrderInfoDetailBean oldOrderInfoDetail);
	
	/**
	 * 更新订单明细备份记录(删除状态)
	* @date 2018年10月18日 上午10:28:24 
	* @author 李斌
	* @return int 
	* @throws
	 */
	int updateOrderInfoDetailWaster(OrderInfoDetailBean oldOrderInfoDetail);
	
	/**
	 * 替换被删除的订单明细记录
	* @date 2018年10月19日 下午3:43:03 
	* @author 李斌
	* @return List<OrderInfoDetailBean> 
	* @throws
	 */
	List<OrderInfoDetailBean> getOrderInfoDetailByDeleteDetail(Map<String, Object> map);
	
	/**
	 * 通过applyId获取所有的修改后记录
	* @date 2018年10月22日 下午1:32:13 
	* @author 李斌
	* @return List<OrderInfoDetailBean> 
	* @throws
	 */
	List<OrderInfoDetailBean> getOrderInfoDetailApplyByApplyId(Map<String, Object> map);
	
	/**
	 * 通过订单信息查询某物料类型的最大行数
	 * @param orderInfoDetail
	 * @return
	 */
	int getMaxRowByMaterialTypeAndFactory(OrderInfoDetailBean orderInfoDetail);
	
	/**
	 * 通过订单信息获取orderInfoTail
	 * @param oldOrderInfoDetail
	 * @return
	 */
	OrderInfoDetailBean getOrderInfoTailByOrderInfoDetail(OrderInfoDetailBean oldOrderInfoDetail);
	
	/**
	 * 修改orderInfoTailByOrderInfoDetail
	 * @param updateOrderInfoDetail
	 * @return
	 */
	int updateOrderInfoTail(OrderInfoDetailBean updateOrderInfoDetail);
	
	/**
	 * 删除orderInfoTailByOrderInfoDetail
	 * @param orderInfoDetail
	 * @return
	 */
	int deleteOrderInfoTail(OrderInfoDetailBean orderInfoDetail);


}
